import 'package:flutter_novel/generated/json/base/json_field.dart';
import 'package:flutter_novel/generated/json/commit_model_entity.g.dart';
import 'dart:convert';

@JsonSerializable()
class CommitModelEntity {
	@JSONField(name: "total_reviews")
	int? totalReviews;
	List<CommitModelReviews>? reviews;
	@JSONField(name: "comic_reviews_cnt")
	int? comicReviewsCnt;

	CommitModelEntity();

	factory CommitModelEntity.fromJson(Map<String, dynamic> json) => $CommitModelEntityFromJson(json);

	Map<String, dynamic> toJson() => $CommitModelEntityToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class CommitModelReviews {
	String? id;
	String? uid;
	@JSONField(name: "nick_name")
	String? nickName;
	String? face;
	@JSONField(name: "comic_id")
	int? comicId;
	String? title;
	@JSONField(name: "vertical_cover")
	String? verticalCover;
	int? type;
	@JSONField(name: "review_title")
	String? reviewTitle;
	String? content;
	int? verify;
	int? score;
	CommitModelReviewsDetail? detail;
	@JSONField(name: "current_time")
	String? currentTime;
	@JSONField(name: "score_update_time")
	String? scoreUpdateTime;
	int? day;
	String? ctime;
	String? mtime;
	List<dynamic>? authors;
	List<dynamic>? styles;
	@JSONField(name: "reject_reason")
	String? rejectReason;
	@JSONField(name: "like_count")
	int? likeCount;
	@JSONField(name: "like_action")
	int? likeAction;
	@JSONField(name: "comment_count")
	int? commentCount;
	List<dynamic>? users;
	int? spoiler;
	@JSONField(name: "is_hot")
	bool? isHot;
	@JSONField(name: "comic_score")
	int? comicScore;
	String? umtime;
	int? level;
	@JSONField(name: "read_depth_info")
	CommitModelReviewsReadDepthInfo? readDepthInfo;

	CommitModelReviews();

	factory CommitModelReviews.fromJson(Map<String, dynamic> json) => $CommitModelReviewsFromJson(json);

	Map<String, dynamic> toJson() => $CommitModelReviewsToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class CommitModelReviewsDetail {
	int? plot;
	int? picture;
	int? character;

	CommitModelReviewsDetail();

	factory CommitModelReviewsDetail.fromJson(Map<String, dynamic> json) => $CommitModelReviewsDetailFromJson(json);

	Map<String, dynamic> toJson() => $CommitModelReviewsDetailToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class CommitModelReviewsReadDepthInfo {
	@JSONField(name: "comic_id")
	int? comicId;
	@JSONField(name: "is_finished")
	int? isFinished;
	@JSONField(name: "online_text_ep_cnt")
	int? onlineTextEpCnt;
	@JSONField(name: "publish_read_online_text_cnt")
	int? publishReadOnlineTextCnt;

	CommitModelReviewsReadDepthInfo();

	factory CommitModelReviewsReadDepthInfo.fromJson(Map<String, dynamic> json) => $CommitModelReviewsReadDepthInfoFromJson(json);

	Map<String, dynamic> toJson() => $CommitModelReviewsReadDepthInfoToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}